Freeing blocks of memory that are no longer needed by an application program may become a performance hotspot that degrades performance due to memory accesses (e.g., triggered by cache misses and page faults) required to identify the pool containing the block to be freed. Some approaches to reducing memory management overhead are aimed at caching data that is likely to be referenced during operations that allocate and free memory. Some modern processors provide a virtual address masking capability that allows application programs to store useful information in pointers, since the full (e.g., 64-bit) address space is rarely needed by application programs.